package reflect;

import javax.xml.bind.Element;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 注解
 * /**
 *  * @Target是内置的注解,用于标注当前注解可以被应用的位置.
 *  *        参数使用ElementType指定,当需要被多个地方使用时可以以数组形式呈现.
 *  *        如果不指定Target注解,则当前注解可以被应用在任意注解可以使用的位置.
 *  *
 *  * @Retention表示保留级别.
 *  *      有三个级别:
 *  *      RetentionPolicy.SOURCE          注解仅保留在源代码中
 *  *      RetentionPolicy.CLASS(默认值)    注解保留在字节码中,但是反射机制不可访问
 *  *      RetentionPolicy.RUNTIME         注解保留在字节码中,反射机制可访问
 *
 */
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)//才能在反射机制中运行,默认保留在class
//辅助编译器检查注解应用的地方
public @interface AutoRunClass {
}
